<?php  
/*******************************  
Codigo copartido forobeta.com 
*******************************/  
class CSSPagination  
{  
    private $totalrows;  
    private $rowsperpage;  
    private $website;  
    private $page;  
    private $sql;  
          
    public function __construct($sql, $rowsperpage, $website)  
    {  
        $this->sql = $sql;  
        $this->website = $website;  
        $this->rowsperpage = $rowsperpage;  
    }  
      
    public function setPage($page)  
    {  
        if (!$page) { $this->page=1; } else  { $this->page = $page; }  
    }  
      
    public function getLimit()  
    {  
        return ($this->page - 1) * $this->rowsperpage;  
    }  
      
    private function getTotalRows()  
    {  
        $result = @mysql_query($this->sql) or die ("query failed!");      
        $this->totalrows = mysql_num_rows($result);  
    }  
      
    private function getLastPage()  
    {  
        return ceil($this->totalrows / $this->rowsperpage);  
    }  
      
    public function showPage()  
    {  
        $this->getTotalRows();  
          
        $pagination = "";  
        $lpm1 = $this->getLastPage() - 1;  
        $page = $this->page;  
        $prev = $this->page - 1;  
        $next = $this->page + 1;  
          
        $pagination .= "<div class=\"pagination\"";  
        if($margin || $padding)  
        {  
            $pagination .= " style=\"";  
            if($margin)  
                $pagination .= "margin: $margin;";  
            if($padding)  
                $pagination .= "padding: $padding;";  
            $pagination .= "\"";  
        }  
        $pagination .= ">";  
          
          
          
        if ($this->getLastPage() > 1)  
        {  
            if ($page > 1)   
                $pagination .= "<a href='$this->website?page=$prev' title='Anterior'>« Anterior</a>";  
            else  
                $pagination .= "<span class=\"disabled\">« Anterior</span>";  
              
              
            if ($this->getLastPage() < 9)  
            {      
                for ($counter = 1; $counter <= $this->getLastPage(); $counter++)  
                {  
                    if ($counter == $page)  
                        $pagination .= "<span class=\"current\">".$counter."</span>";  
                    else  
                        $pagination .= "<a href='$this->website?page=$counter' title='pagina $counter'>".$counter."</a>";                      
                }  
            }  
              
            elseif($this->getLastPage() >= 9)  
            {  
                if($page < 4)          
                {  
                    for ($counter = 1; $counter < 6; $counter++)  
                    {  
                        if ($counter == $page)  
                            $pagination .= "<span class=\"current\">".$counter."</span>";  
                        else  
                            $pagination .= "<a href='$this->website?page=$counter' title='pagina $counter'>".$counter."</a>";                      
                    }  
                    $pagination .= "...";  
                    $pagination .= "<a href='$this->website?page=$lpm1' title='pagina $lpm1'>".$lpm1."</a>";  
                    $pagination .= "<a href='$this->website?page=".$this->getLastPage()."' title='pagina ".$this->getLastPage()."'>".$this->getLastPage()."</a>";          
                }  
                elseif($this->getLastPage() - 3 > $page && $page > 1)  
                {  
                    $pagination .= "<a href='$this->website?page=1' title='pagina 1'>1</a>";  
                    $pagination .= "<a href='$this->website?page=2' title='pagina 2'>2</a>";  
                    $pagination .= "...";  
                    for ($counter = $page - 1; $counter <= $page + 1; $counter++)  
                    {  
                        if ($counter == $page)  
                            $pagination .= "<span class=\"current\">".$counter."</span>";  
                        else  
                            $pagination .= "<a href='$this->website?page=$counter' title='pagina $counter'>".$counter."</a>";                      
                    }  
                    $pagination .= "...";  
                    $pagination .= "<a href='$this->website?page=$lpm1' title='pagina $lpm1'>$lpm1</a>";  
                    $pagination .= "<a href='$this->website?page=".$this->getLastPage()."' title='pagina ".$this->getLastPage()."' >".$this->getLastPage()."</a>";          
                }  
                else  
                {  
                    $pagination .= "<a href='$this->website?page=1' title='pagina 1'>1</a>";  
                    $pagination .= "<a href='$this->website?page=2' title='pagina 2'>2</a>";  
                    $pagination .= "...";  
                    for ($counter = $this->getLastPage() - 4; $counter <= $this->getLastPage(); $counter++)  
                    {  
                        if ($counter == $page)  
                            $pagination .= "<span class=\"current\">".$counter."</span>";  
                        else  
                            $pagination .= "<a href='$this->website?page=$counter' title='pagina $counter'>".$counter."</a>";                      
                    }  
                }  
            }  
          
        if ($page < $counter - 1)   
            $pagination .= "<a href='$this->website?page=$next' title='pagina $counter'>Siguiente »</a>";  
        else  
            $pagination .= "<span class=\"disabled\">Siguiente »</span>";              
        }  

       $pagination .= "</div>\n";      
                      
        return $pagination;  
    }  
}  
?>